1. Field of the Invention
The present invention relates to an apparatus and a method for color conversion. In particular, the invention relates to a color conversion apparatus and a color conversion method for performing color conversion by means of direct mapping method using a three-dimensional look-up table.
2. Description of the Related Art
Direct mapping and masking methods have been known as means for converting input image data represented by some color space into an output image data represented by a different color space. The direct mapping method uses a three-dimensional look-up table (hereinafter abbreviated as “LUT”) associating color space data of input image data with that of output image data and storing the correspondence to directly convert data.
If all of the output image data with respect to the input image data are stored in the three-dimensional LUT, an enormous memory capacity is required. Then, the LUT is usually employed together with interpolation processing in order to accomplish color conversion. Specifically, an LUT is created with a minimum number of data (number of lattice points) and data located between the lattice points are determined through interpolation processing.
FIG. 10 is a schematic block diagram illustrating color conversion through such a direct mapping method. Here, input image data is data of L*, a* and b* represented in an L*a*b* color space. L* data, a* data and b* data are each formed of 8 bits. Output image data is data of C, M, Y and K represented in a CMYK color space. C data, M data, Y data and K data are each formed of 8 bits.
As color conversion processes for respective four components (CMYK) of output image data are similar, description herein of the color conversion is applied only to one component (C component) among these four components (CMYK).
Referring to FIG. 10, color conversion by means of the direct mapping method includes a process of extracting eight lattice points by a three-dimensional LUT unit 701 to output data corresponding to the extracted lattice points and a process of calculating desired interpolation data between the lattice points by an 8-point interpolation processing unit 703. Three most significant bits of 8 bits of L*a*b* input image data each are input to three-dimensional LUT unit 701 and five least significant bits thereof are input to 8-point interpolation processing unit 703.
Three-dimensional LUT unit 701 includes a three-dimensional LUT recording a correspondence between L*a*b* color space data and CMYK color space data. FIG. 11 illustrates this three-dimensional LUT. Referring to FIG. 11, the three-dimensional LUT has respective axes of L*a*b* each divided into 8 sections of 32 steps each and thus lattice points are defined. Output image data is related to input image data corresponding to a lattice point and the output image data (lattice point data) is stored in the LUT.
Three-most-significant-bit data of L*a*b* data is supplied to three-dimensional LUT unit 701 which then extracts eight lattice points in the three-dimensional LUT. These eight lattice points constitute a minimum cube in L*a*b* color space, the cube being determined by the three-most-significant-bit data. The three-dimensional LUT is referred to extract output data corresponding to each lattice point.
8-point interpolation processing unit 703 receives five least significant bits of L*a*b* data each to calculate a weighting factor from the five-least-significant-bit data. Then, the calculated weighting factor and output data (lattice point data) corresponding to the eight lattice points extracted by three-dimensional LUT unit 701 are used to determine final output data Cout in accordance with the formula below.
      Cout    =                  ∑                  i          =          1                8            ⁢              Wi        ·        Ci                  Wi    =          Vi              a        3            
Where Wi represents a weighting factor calculated from the five-least-significant-bit data and Ci represents lattice point data. As shown in FIG. 12, weighting factor Wi indicates the contribution ratio of each of lattice point data (C1–C8) corresponding to respective eight points to output data of one point (black dot locating almost at the center of the cube).
This conventional color conversion process, however, has a problem of a low precision in color conversion.
The reason for the poor precision in color conversion of the conventional method is described below in conjunction with FIG. 13.
Referring to FIG. 13, L*a*b* color space is in the shape of a spindle with L* axis as the central axis. The outermost boundary of L*a*b* color space is indicated by reference numeral 303. If input data (to be processed) is located within a unit L1 of the lattice (a unit of the lattice is hereinafter referred to as lattice component), all of the eight lattice points constituting the lattice component accordingly exist in L*a*b* color space. A highly precise interpolation processing is thus possible.
On the other hand, if input data is located in a lattice component L2, the lattice points thereof are partially located out of L*a*b* color space. Use of data of the lattice points on the outside of L*a*b* color space for interpolation processing deteriorates precision in color conversion. The reason is that determination of the data of lattice points existing outside the color space requires prediction from data of lattice points within the color space, and resultant data is thus inferior in accuracy.
In order to overcome such a problem, a method has been devised as shown in FIG. 14 according to which L*a*b* color space is more finely divided near the outermost boundary (see for example Japanese Patent Laying-Open No. 10-276337).
This method, however, requires interpolation processing using lattice points on the outside of the color space as shown in FIGS. 15–17, resulting in a poor precision in color conversion.